﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 解释器模式
{
   public class JnInterpreter : BaseInterpreter
    {

        private static Dictionary<char, string> _Dictionary = new Dictionary<char, string>();
        static JnInterpreter()
        {
            _Dictionary.Add('j',"a");
            _Dictionary.Add('k',"b");
            _Dictionary.Add('l',"c");
            _Dictionary.Add('m',"d");
            _Dictionary.Add('n',"e");
        

        }

        public override void Conversion(Context context)
        {
            string text = context.Get();
            if (string.IsNullOrEmpty(text))
                return;

            List<string> numberList = new List<string>();
            //o t---j n
            //j n---a e
            //a i---1 9
            //other--0

            foreach (var item in text.ToLower().ToArray())
            {

                if (_Dictionary.ContainsKey(item))
                {
                    numberList.Add(_Dictionary[item]);
                }
                else
                {
                    numberList.Add(item.ToString());
                }
            }
            context.Set(string.Concat(numberList));
        }

        /// <summary>
        /// a b c d e f g h i     j k l m n....
        /// 1 2 3 4 5 6 7 8 9     a b c d e....
        /// </summary>
        /// <param name="text"></param>
        /// <returns></returns>
        //private  string Conversion(Context context)
        //{
        //    string text = context.Get();
        //    if (string.IsNullOrEmpty(text))
        //        return "";
        //    List<string> numberList = new List<string>();
        //    //o t---j n
        //    //j n---a e
        //    //a i---1 9
        //    //other--0

        //    foreach (var item in text.ToLower().ToArray())
        //    {
        //        switch (item)
        //        {
        //            case 'a':

        //                numberList.Add("1");
        //                break;
        //            case 'b':
        //                numberList.Add("2");
        //                break;
        //            case 'c':
        //                numberList.Add("3");
        //                break;
        //            case 'd':
        //                numberList.Add("4");
        //                break;
        //            case 'e':
        //                numberList.Add("5");
        //                break;
        //            case 'f':
        //                numberList.Add("6");
        //                break;
        //            case 'g':
        //                numberList.Add("7");
        //                break;
        //            case 'h':
        //                numberList.Add("8");
        //                break;
        //            case 'i':
        //                numberList.Add("9");
        //                break;
        //            default:
        //                numberList.Add("0");
        //                break;
        //        }
        //    }
        //    return string.Concat(numberList);//数组链接成字符串
        //}



    }
}
